//
//  LBXAsyncForMainThreadManager.h
//  learnLabelAsync
//
//  Created by liboxiang on 2019/3/4.
//  Copyright © 2019 liboxiang. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

typedef id(^LBXAsyncBlock)(void);
typedef void(^LBXMainThreadBlock)(id object);

typedef NS_ENUM(NSInteger,LBXAsyncActionPriority) {
    LBXAsyncActionPriorityLow       = -1,
    LBXAsyncActionPriorityDefault   = 0,
    LBXAsyncActionPriorityHight     = 1,
};

@interface LBXAsyncForMainThreadManager : NSObject

+ (instancetype)shareInstance;

- (void)lbx_asyncBlock:(LBXAsyncBlock)asyncBlock withKey:(NSAttributedString *)key bindingObj:(NSObject *)bindingObj  priority:(LBXAsyncActionPriority)priority completionBlock:(LBXMainThreadBlock)completionBlock;

@end

NS_ASSUME_NONNULL_END
